/********************************************
 * 功能说明: 
 * 模块名称: 
 * 系统名称: 
 * 软件版权: Frank
 * 系统版本: 1.0.0
 * 开发人员: Frank
 * 开发时间: 2019/8/21 20:14
 * 审核人员: 
 * 相关文档: 
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.spring.arch.common.exception;

import lombok.Getter;

/**
 * 全局服务异常
 * @author Frank
 * @version 1.0.0.1
 * @since JDK 1.8
 */
public class ServiceException extends RuntimeException {

    private static final long serialVersionUID = 4752931722792030326L;
    /**
     * 错误码
     * 一共 10 位，分成四段
     *
     * 第一段，1 位，类型
     *      1 - 业务级别异常
     *      2 - 系统级别异常
     * 第二段，3 位，服务编码
     *      001 - 系统服务
     *      002 - 工单服务
     *      003 - 人力资源
     *      004 - 资产服务
     *      005 - 财务服务
     *      ... - ...
     * 第三段，3 位，模块
     *      不限制规则。
     *      一般建议，每个系统里面，可能有多个模块，可以再去做分段。以用户系统为例子：
     *          001 - Auth 模块
     *          002 - User 模块
     *          003 - MobileCode 模块
     * 第四段，3 位，错误码
     *       不限制规则。
     *       一般建议，每个模块自增。
     */
    @Getter
    private final Integer code;

    public ServiceException(final Integer code, final String message) {
        super(message);
        this.code = code;
    }
}

